package andrei.mower2.io;

import andrei.mower2.business.Mower.Command;
import andrei.mower2.business.MowerVector;
import andrei.mower2.business.Position;
import andrei.mower2.io.exceptions.MissingLawnCornerException;
import andrei.mower2.io.exceptions.UnparsableCommandException;
import andrei.mower2.io.exceptions.UnparsableLawnCornerException;
import andrei.mower2.io.exceptions.UnparsableMowerStartVectorException;

public interface MowerInputReader extends AutoCloseable {

	public Position getLawnCorner() throws MissingLawnCornerException, UnparsableLawnCornerException;
	public MowerVector nextStartVector() throws UnparsableMowerStartVectorException;
	public Command nextCommand() throws UnparsableCommandException;
	public void addListener(MowerInputListener inputListener);
}
